package ar.com.psicosoft.model.psicosoft_datos_anexos;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Time;
import java.util.List;

/**
 * The persistent class for the provincia database table.
 * 
 */
@Entity
@Table(name = "provincia", schema = "psicosoft_datos_anexos")
@NamedQuery(name = "Provincia.findAll", query = "SELECT p FROM Provincia p")
public class Provincia implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name = "sec_provincia", sequenceName = "psicosoft_datos_anexos.sec_provincia")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec_provincia")
	@Column(name = "\"idProvincia\"", unique = true, nullable = false)
	private Integer idProvincia;

	private Time baja;

	@Column(name = "\"idPais\"", nullable = false)
	private Integer idPais;

	@Column(name = "\"nombreProvincia\"", nullable = false, length = 50)
	private String nombreProvincia;

	// bi-directional many-to-one association to Departamento
	@OneToMany(mappedBy = "provincia")
	private List<Departamento> departamentos;

	// bi-directional many-to-one association to Pais
	@ManyToOne
	@JoinColumn(name = "\"idPais\"", insertable = false, updatable = false)
	private Pais pais;

	public Provincia() {
	}

	public Integer getIdProvincia() {
		return this.idProvincia;
	}

	public void setIdProvincia(Integer idProvincia) {
		this.idProvincia = idProvincia;
	}

	public Time getBaja() {
		return this.baja;
	}

	public void setBaja(Time baja) {
		this.baja = baja;
	}

	public Integer getIdPais() {
		return this.idPais;
	}

	public void setIdPais(Integer idPais) {
		this.idPais = idPais;
	}

	public String getNombreProvincia() {
		return this.nombreProvincia;
	}

	public void setNombreProvincia(String nombreProvincia) {
		this.nombreProvincia = nombreProvincia;
	}

	public List<Departamento> getDepartamentos() {
		return this.departamentos;
	}

	public void setDepartamentos(List<Departamento> departamentos) {
		this.departamentos = departamentos;
	}

	public Departamento addDepartamento(Departamento departamento) {
		getDepartamentos().add(departamento);
		departamento.setProvincia(this);

		return departamento;
	}

	public Departamento removeDepartamento(Departamento departamento) {
		getDepartamentos().remove(departamento);
		departamento.setProvincia(null);

		return departamento;
	}

	public Pais getPais() {
		return this.pais;
	}

	public void setPais(Pais pais) {
		this.pais = pais;
	}

}